package cn.openea.perpartner.meily.web.service;

import cn.openea.perpartner.common.core.web.domain.AjaxResult;
import cn.openea.perpartner.meily.web.entity.ProvideSamples;
import cn.openea.perpartner.meily.web.entity.dto.MaterialDownloadDTO;
import cn.openea.perpartner.meily.web.entity.vo.ProvideSamplesSubVo;
import cn.openea.perpartner.meily.web.entity.vo.ProvideSamplesVo;
import com.baomidou.mybatisplus.extension.service.IService;
import lombok.NonNull;

import java.util.List;

/**
 * @author ysk
 * @email zane_ysk@qq.com
 * @date 2023-03-27 11:37:04
 */
public interface IProvideSamplesService extends IService<ProvideSamples> {

    /**
     * 发布样品发放活动
     * @param provideSamples 实例对象
     * @return 是否成功
     */
    AjaxResult publish(@NonNull ProvideSamples provideSamples);

    /**
     * 获取样品发放详情
     * @param id
     * @return 实例对象
     */
    AjaxResult queryById(String id);

    /**
     * 获取样品发放列表-小程序
     * @param vo
     * @return
     */
    List<ProvideSamples> getAllList(ProvideSamplesSubVo vo);

    /**
     * 活动作废
     * 结束样品发放活动
     * @param vo
     * @return
     */
    boolean finish(ProvideSamplesVo vo);

    /**
     * 活动结束报名
     * @param vo
     * @return
     */
    boolean endJoin(ProvideSamplesVo vo);

    List<ProvideSamples> findListByVo(ProvideSamplesVo vo);

    /**
     * 修改样品剩余数量
     */
    void editQuota(String id, Integer number);

    void edit(ProvideSamples provideSamples);

    /**
     * 获取样品的提交素材文件 已经评级过的文件
     */
    MaterialDownloadDTO getMaterialDirectory(String id);
}

